package org.bronycorps.mlptss.domain.model;


public class Character extends AbstractType {

	public enum AnimationName {
		FLY("fly"), HIT("hit");

		final public String name;

		private AnimationName(String suffix) {
			this.name = suffix;
		}
	}

	private String bossName;

	private final String bulletTypeName;
	private final float chargeSpeed;
	private final String name;

	private String specialBulletName;

	private final int speed;

	public Character(String name, String animationPrefix, int speed,
			String bulletTypeName, float chargeSpeed, String specialBulletName,
			String bossName) {
		super(animationPrefix);
		this.name = name;
		this.speed = speed;
		this.bulletTypeName = bulletTypeName;
		this.chargeSpeed = chargeSpeed;
		this.specialBulletName = specialBulletName;
		this.bossName = bossName;
	}

	public String getAnimationName(AnimationName suffix) {
		return super.getAnimationName() + suffix.name;
	}

	public String getBossName() {
		return this.bossName;
	}

	public String getBulletTypeName() {
		return this.bulletTypeName;
	}

	public float getChargeSpeed() {
		return this.chargeSpeed;
	}

	public String getName() {
		return this.name;
	}

	public String getScriptName() {
		return super.getAnimationName() + "script.js";
	}

	public String getSpecialBulletName() {
		return this.specialBulletName;
	}

	public String getSpecialMissileTypePrefix() {
		return super.getAnimationName() + "specialMissile";
	}

	public int getSpeed() {
		return this.speed;
	}
}
